﻿package com.gengine.utils
{

    public class StringHelper extends Object
    {

        public function StringHelper()
        {
            return;
        }// end function

        public static function getCharLength(param1:String) : int
        {
            var _loc_5:Number = NaN;
            var _loc_2:* = param1.length;
            var _loc_3:int = 0;
            var _loc_4:int = 0;
            while (_loc_4 < _loc_2)
            {
                
                _loc_5 = param1.charCodeAt(_loc_4);
                if (_loc_5 > 255 || _loc_5 < 0)
                {
                    _loc_3 = _loc_3 + 2;
                }
                else
                {
                    _loc_3 = _loc_3 + 1;
                }
                _loc_4++;
            }
            return _loc_3;
        }// end function

        public static function trim(param1:String) : String
        {
            if (param1 == null)
            {
                return "";
            }
            var _loc_2:int = 0;
            while (isWhitespace(param1.charAt(_loc_2)))
            {
                
                _loc_2++;
            }
            var _loc_3:* = param1.length - 1;
            while (isWhitespace(param1.charAt(_loc_3)))
            {
                
                _loc_3 = _loc_3 - 1;
            }
            if (_loc_3 >= _loc_2)
            {
                return param1.slice(_loc_2, (_loc_3 + 1));
            }
            return "";
        }// end function

        public static function isWhitespace(param1:String) : Boolean
        {
            switch(param1)
            {
                case "":
                case " ":
                case "　":
                case "\t":
                case "\r":
                case "\n":
                case "\f":
                {
                    return true;
                }
                default:
                {
                    return false;
                    break;
                }
            }
        }// end function

        public static function getString(param1:String) : String
        {
            return param1 == null ? ("") : (param1);
        }// end function

        public static function substitute(param1:String, ... args) : String
        {
            var _loc_4:Array = null;
            if (param1 == null)
            {
                return "";
            }
            args = args.length;
            if (args == 1 && args[0] is Array)
            {
                _loc_4 = args[0] as Array;
                args = _loc_4.length;
            }
            else
            {
                _loc_4 = args;
            }
            var _loc_5:int = 0;
            while (_loc_5 < args)
            {
                
                param1 = param1.replace(new RegExp("\\{" + _loc_5 + "\\}", "g"), _loc_4[_loc_5]);
                _loc_5++;
            }
            return param1;
        }// end function

    }
}
